package com.atguigu.juc.day02.lock;

import java.util.concurrent.TimeUnit;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;

public class Demo03TryLock {

    public static void main(String[] args) throws InterruptedException {

        // 1、创建锁对象
        Lock lock = new ReentrantLock();

        // 2、创建 A 线程占用锁
        new Thread(()->{
            lock.lock();
        }, "thread-a").start();

        TimeUnit.MILLISECONDS.sleep(20);

        // 3、创建 B 线程尝试获取锁
        new Thread(()->{
            // 仅在方法执行的当时尝试一下获取锁，不管是否获取成功都不会等待
            boolean lockResult = lock.tryLock();

            if (lockResult) {
                System.out.println("线程 B 得到了锁。");
            } else {
                System.out.println("线程 B 没有得到锁。");
            }

        }, "thread-b").start();

    }

}
